//package io.renren.modules.iots.test.socket.fengzhuang;
//
//import java.io.IOException;
//import java.nio.ByteBuffer;
//import java.nio.channels.CancelledKeyException;
//import java.nio.channels.SelectionKey;
//import java.nio.channels.SocketChannel;
//
//import io.renren.modules.iots.utils.socket.client.SocketUtils;
//
//
///**
// * @ClassName: SingleSocketClientThread
// * @Description: 单例模式SingleSocketClientThread类
// * @author 周西栋
// * @date 2018年5月8日
// *
// */
//public class SingleSocketReadThread implements Runnable {
//	
//	private Integer reccount = 0;
//	
//	/************************************************      单例模式     ************************************************/
//	
//    /**
//     * 创建一个新的实例 SingleSocketClientThread.
//     */
//    private SingleSocketReadThread() {
//    	new Thread(this).start();
//    }
//    
//    /**
//     * 私有对象变量
//     */
//    private static final SingleSocketReadThread single = new SingleSocketReadThread();
//    
//    /**
//     * @Title: getInstance
//     * @Description: 饿汉模式--单例（静态工厂方法） 
//     * @param @return    参数
//     * @return SingleSocketClientThread    返回类型
//     * @throws
//     */
//    public static SingleSocketReadThread getInstance() {
//        return single;
//    }
//	
//	/************************************************      单例模式     ************************************************/
//	
//	@Override
//	public void run() {
//        System.out.println("我启动了一个读信息的线程");
//        // 轮询访问selector
////        System.out.println("!SocketUtils.SOCKETBEAN_MAP.isEmpty()"+!SocketUtils.SOCKETBEAN_MAP.isEmpty());
//        while (!SocketUtils.SOCKETBEAN_MAP.isEmpty()) {
//        	try {
//				Thread.sleep(1);
//			} catch (InterruptedException e1) {
//				e1.printStackTrace();
//			}
//        	for(SocketBean socketBean :SocketUtils.SOCKETBEAN_MAP.values()){
//        		try {
//        			if(socketBean.getConnectstatus() == 3 ){
//        				try {
//							if(socketBean.getSocketChannel() != null && socketBean.getSelectionKey().isConnectable()){
//								readBuffer(socketBean.getSocketChannel());
//							}
//						} catch (CancelledKeyException e) {
//							continue;
//						}
//        			}
////        			else{
////        				System.out.println("socketBean的address是"+socketBean.getServerip()+":"+socketBean.getServerport());
////        			}
//				} catch (IOException e) {
//					e.printStackTrace();
//					continue;
//				}
//        	}
//        }
//	}
//	
//    /**
//     * @Title: readBuffer
//     * @Description: 从缓冲区中读取数据
//     * @param @param channel
//     * @param @throws IOException    参数
//     * @return void    返回类型
//     * @throws
//     */
//    public void readBuffer(SocketChannel channel) throws IOException{
//    	// 创建读取的缓冲区
//        ByteBuffer buffer = ByteBuffer.allocate(1024);
//        if(!channel.isConnected()){
//        	return;
//        }
//        reccount = channel.read(buffer);
//        if(reccount == -1){
//            System.out.println("断开..." 
//                    + channel.socket().getRemoteSocketAddress());  
//            String address = channel.socket().getRemoteSocketAddress().toString().split("/")[1];
//            System.out.println("address:"+address);
//            SocketUtils.SOCKETBEAN_MAP.get(address).setConnectstatus(4);
//        }else{
//        	byte[] data = buffer.array();
//        	String msg = new String(data).trim();
//        	if(msg != null && !"".equals(msg)){
//        		System.out.println("服务端收到信息：" + msg);
//        		// 调用信息转存方法
////      putIntoKafka(msg);
//        	}
//        }
//    }
//}